package cn.elead.chaos.remote.web.system.service;

import java.util.List;

import cn.elead.chaos.mybatils.web.page.TableDataInfo;
import cn.elead.chaos.remote.web.system.domain.SysRole;
import feign.Param;
import feign.QueryMap;
import feign.RequestLine;

/**
 * 角色信息Service接口
 * 
 * @author luopeng
 * @date 2020-02-26 14:15:00
 */

public interface IRemoteRoleService {

	/**
	 * 查询角色信息分页列表
	 * 
	 * @param role 角色信息
	 * @return 角色信息集合
	 */
	@RequestLine("GET /system/role/page")
	public TableDataInfo<SysRole> page(@QueryMap SysRole role);

	/**
     * 查询角色信息列表
     * 
     * @param role 角色信息
     * @return 角色信息集合
     */
    @RequestLine("GET /system/role/list")
    public List<SysRole> list(@QueryMap SysRole role);

    /**
     * 查询角色信息
     * 
     * @param roleId 角色信息ID
     * @return 角色信息
     */
    @RequestLine("GET /system/role/{roleId}")
    public SysRole getInfo(@Param("roleId") Long roleId);


    /**
     * 新增角色信息
     * 
     * @param role 角色信息
     * @return 结果
     */
    @RequestLine("POST /system/role") 
    public int add(SysRole role);

    /**
     * 修改角色信息
     * 
     * @param role 角色信息
     * @return 结果
     */
    @RequestLine("PUT /system/role") 
    public int edit(SysRole role);
    
    /**
     * 状态修改
     * @param role
     * @return
     */
    @RequestLine("PUT /system/role/changeStatus") 
    public int changeStatus(SysRole role);

    
    /**
     * 删除角色信息信息
     * 
     * @param roleId 角色信息ID
     * @return 结果
     */
    @RequestLine("DELETE /system/role/{roleId}") 
    public int remove(@Param("roleId") String roleId);
    
    /**
     *  获取角色选择框列表
     * @return
     */
    @RequestLine("GET /system/role/optionselect")
    public List<SysRole> optionselect();

}
